package com.yinxin.wudasuanfa.sort;

import java.util.Arrays;

/**
 * @author yinxin
 * @version 1.0
 * @Description: 插入排序
 * @date 2022/4/1819:23
 */
public class InsertSort {
    public static void main(String[] args) {
        int[] arr = {2, 3, 1, 82, 97, 22, 45, 27};
        insertSort(arr);
    }

    public static void insertSort(int[] arr) {
        for (int i = 1; i < arr.length; i++) {
            int key = arr[i];
            int j = i - 1;
            while (j >= 0 && key < arr[j]) {
                arr[j + 1] = arr[j];//当arr[j]比第i个数大则当前的arr[j]向前移动一位，并且所有的j之前的数也向前移动一位
                System.out.println("j-" + Arrays.toString(arr));
                j--;
            }
            arr[j + 1] = key;//移动到最后不能移动了那个空出来的位置就是i的值将arr[i]插入
            System.out.println("第" + i + "次的顺序为" + Arrays.toString(arr));
        }
        System.out.println("最后结果为:"+Arrays.toString(arr));
    }
}
